package Vista;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.rmi.RemoteException;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

import VO.RodamientoVO;
import VO.StockVO;

import conexion.ProxyIR;






/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class ModificacionRodamientoGUI extends javax.swing.JFrame {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1458681004323411906L;
	private JLabel codigoLbl;
	private JTextField medidaTxt;
	private JButton salirRodamientoBtn;
	private JButton agregarRodamientoBtn;
	private JLabel medidaLbl;
	private JTextField codigoTxt;
	static private ModificacionRodamientoGUI instance;
	private ProxyIR server;
	private JTextField stockTxt;
	private JLabel stockLbl;
	private JLabel jLabel2;
	private JTextField descripcionTxt;
	private JLabel caracteristicaLbl;
	private JTextField precoTxt;
	private JButton buscar;
	private JLabel mensaje;
	private JLabel precioLbl;
	private JComboBox paisOrigenCmb;
	private RodamientoVO rodamiento;

	/**
	* Auto-generated main method to display this JFrame
	*/
	 public static ModificacionRodamientoGUI getInstance() {
		if (instance == null) {			
			instance = new ModificacionRodamientoGUI();
		}
		
		return instance;
	}	
	public ModificacionRodamientoGUI() {		
		super();
		server = ProxyIR.getInstance();
		initGUI();		
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			this.setTitle("Modificar Rodamiento");
			{
				codigoLbl = new JLabel();
				getContentPane().add(codigoLbl);
				codigoLbl.setText("Codigo");
				codigoLbl.setBounds(21, 35, 63, 28);
			}
			{
				codigoTxt = new JTextField();
				getContentPane().add(codigoTxt);
				codigoTxt.setBounds(112, 36, 129, 28);
			}
			{
				medidaLbl = new JLabel();
				getContentPane().add(medidaLbl);
				medidaLbl.setText("Medida");
				medidaLbl.setBounds(287, 159, 70, 28);
			}
			{
				medidaTxt = new JTextField();
				getContentPane().add(medidaTxt);
				medidaTxt.setBounds(369, 160, 122, 28);				
			}
			{
				agregarRodamientoBtn = new JButton();
				getContentPane().add(agregarRodamientoBtn);
				agregarRodamientoBtn.setText("Modificar");
				agregarRodamientoBtn.setBounds(417, 279, 108, 28);
				agregarRodamientoBtn.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						
					rodamiento.setCodigo(codigoTxt.getText());
					rodamiento.setDescripcion(descripcionTxt.getText());
					rodamiento.setMedida(new Float(medidaTxt.getText()));
					rodamiento.setDescripcion(descripcionTxt.getText());
					rodamiento.getStock().setPuntoRep(new Integer(stockTxt.getText()));
					server.modificarRodamiento(rodamiento);
					mensaje.setText("rodamiento modificado satisfactoriamente!");
					
					}
				});
			}
			{
				salirRodamientoBtn = new JButton();
				getContentPane().add(salirRodamientoBtn);				
				getContentPane().add(getPrecioLbl());
				getContentPane().add(getPrecoTxt());
				getContentPane().add(getCaracteristicaLbl());
				getContentPane().add(getCaracteristicaTxt());
				getContentPane().add(getStockLbl());
				getContentPane().add(getStockTxt());
				getContentPane().add(getMensaje());
				getContentPane().add(getBuscar());
				salirRodamientoBtn.setText("Salir");
				salirRodamientoBtn.setBounds(286, 279, 110, 28);
				salirRodamientoBtn.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
					
						ModificacionRodamientoGUI.getInstance().setVisible(false);						
					}
				});
			}
			pack();
			this.setSize(554, 349);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}	
	
		
	private JLabel getPrecioLbl() {
		if(precioLbl == null) {
			precioLbl = new JLabel();
			precioLbl.setText("Modelo");
			precioLbl.setBounds(21, 160, 37, 15);
		}
		return precioLbl;
	}
	
	private JTextField getPrecoTxt() {
		if(precoTxt == null) {
			precoTxt = new JTextField();
			precoTxt.setBounds(112, 154, 85, 28);
		}
		return precoTxt;
	}
	
	private JLabel getCaracteristicaLbl() {
		if(caracteristicaLbl == null) {
			caracteristicaLbl = new JLabel();
			caracteristicaLbl.setText("Descripcion");
			caracteristicaLbl.setBounds(12, 102, 93, 26);
		}
		return caracteristicaLbl;
	}
	
	private JTextField getCaracteristicaTxt() {
		if(descripcionTxt == null) {
			descripcionTxt = new JTextField();
			descripcionTxt.setBounds(112, 102, 379, 28);
		}
		return descripcionTxt;
	}


	
	private JLabel getStockLbl() {
		if(stockLbl == null) {
			stockLbl = new JLabel();
			stockLbl.setText("Punto Reposicion");
			stockLbl.setBounds(21, 212, 49, 14);
		}
		return stockLbl;
	}
	
	private JTextField getStockTxt() {
		if(stockTxt == null) {
			stockTxt = new JTextField();
			stockTxt.setBounds(112, 207, 85, 26);
			stockTxt.setText("0");
		}
		return stockTxt;
	}
	
	private JLabel getMensaje() {
		if(mensaje == null) {
			mensaje = new JLabel();
			mensaje.setBounds(21, 278, 247, 29);
		}
		return mensaje;
	}
	
	private JButton getBuscar() {
		if(buscar == null) {
			buscar = new JButton();
			buscar.setText("Buscar");
			buscar.setBounds(277, 35, 127, 29);
			buscar.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evt) {
					String codigo = codigoTxt.getText();
					
					rodamiento=null;
					try {
						rodamiento = server.buscarRodamiento(new RodamientoVO(codigo));
					} catch (RemoteException e) {
						mensaje.setText("error al buscar el rodamiento");
						e.printStackTrace();
					}
					if(rodamiento != null){
//						descripcionTxt.setText(roda.getCaracteristica());
						precoTxt.setText(rodamiento.getModelo());
						descripcionTxt.setText(rodamiento.getDescripcion());
						stockTxt.setText(rodamiento.getStock().getPuntoRep().toString());
						codigoTxt.setEditable(false);
						medidaTxt.setText(Float.toString(rodamiento.getMedida()));
					}
				}
			});
		}
		return buscar;
	}

}